package com.service;

import com.result.Result;
import com.vo.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

/**
 * @Author: chihaojie
 * @Date: 2019/6/22 16:14
 * @Version 1.0
 * @Note
 */
public interface StatisticService {


    Result<WholeDailySaleVO> getWholeDailySaleStatistic(Date day, HttpServletRequest request, HttpServletResponse response);

    Result<WholeMonthSaleVO> getWholeMonthSaleStatistic(Long month, HttpServletRequest request, HttpServletResponse response);

    Result<SingleDeviceDaySaleVO> getSingleDeviceDaySaleStatistic(Long deviceId, Date day, HttpServletRequest request, HttpServletResponse response);

    Result<SingleDeviceMonthSaleVO> getSingleDeviceMonthSaleStatistic(Long deviceId, Long month, HttpServletRequest request, HttpServletResponse response);

    Result<SingleHospitalDaySaleVO> getSingleHospitalDaySaleStatistic(Long hospitalId, Date date, HttpServletRequest request, HttpServletResponse response);

    Result<SingleHospitalMonthSaleVO> getSingleHospitalMonthSaleStatistic(Long hospitalId, Long month, HttpServletRequest request, HttpServletResponse response);

    Result<ProductSKUDaySaleVO> getProductSKUDaySaleStatistic(Long productId, Date date, HttpServletRequest request, HttpServletResponse response);

    Result<ProductSKUMonthSaleVO> getProductSKUMonthSaleStatistic(Long productId, Long month, HttpServletRequest request, HttpServletResponse response);

    Result<List<ProductSKUSaleVO>> getAgentProductSKUSaleStatistic(Long productId, Long startTime, Long entTime);

    Result<List<ProductSKUSaleVO>> getAgentAllProductSKUSaleStatistic(Long startTime, Long entTime);


    Result<List<ProductSKUSaleVO>> getAgentSingleSKUDaySaleStatistic(Long productId, Long startTime, Long entTime);

    Result<List<ProductSKUMonthSaleVO>> getAgentSingleSKUMonthSaleStatistic(Long productId, Long startTime, Long entTime);

    Result<List<SingleDeviceSaleVO>> getAgentAllDeviceSaleStatistic(Long startTime, Long entTime);

    Result<List<SingleDeviceDaySaleVO>> getAgentSingleDeviceDaySaleStatistic(Long deviceId, Long startTime, Long entTime);

    Result<List<SingleDeviceMonthSaleVO>> getAgentSingleDeviceMonthSaleStatistic(Long deviceId, Long startTime, Long entTime);

    Result<List<SingleHospitalSaleVO>> getAgentAllHospitalSaleStatistic(Long startTime, Long entTime);

    Result<List<SingleHospitalDaySaleVO>> getAgentSingleHospitalDaySaleStatistic(Long hospitalId, Long startTime, Long entTime);

    Result<List<SingleHospitalMonthSaleVO>> getAgentSingleHospitalMonthSaleStatistic(Long hospitalId, Long startTime, Long entTime);

    Result<List<WholeDailySaleVO>> getDailySaleStatistic(Long startTime, Long entTime, HttpServletRequest request, HttpServletResponse response);

    Result<List<WholeMonthSaleVO>> getMonthlySaleStatistic(Long startTime, Long entTime, HttpServletRequest request, HttpServletResponse response);
}
